﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Persistencia;

namespace Dlls
{
    public class FuncionarioDLL
    {
          private Context context;

        public FuncionarioDLL()
        {
            context = new Context();    
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="tipoGrupo"></param>
        /// <returns></returns>
        public IEnumerable<Funcionario> List() 
        {
            return (from o in context.Funcionarios select o).ToList();
        }

        public void Insert(Funcionario funcionario) 
        {
            context.Funcionarios.InsertOnSubmit(funcionario);
            context.SubmitChanges();
        }

        public void Update(int codigo, Funcionario funcionario) 
        {
            Funcionario obj = context.Funcionarios.SingleOrDefault(o => o.Codigo == codigo);
            obj.Nome = funcionario.Nome;
            obj.CodUsuario = funcionario.CodUsuario;
            obj.Tipo = funcionario.Tipo;
            obj.AtivoSN = funcionario.AtivoSN;
            obj.CEP = funcionario.CEP;
            obj.Logradouro = funcionario.Logradouro;
            obj.Numero = funcionario.Numero;
            obj.Cidade = funcionario.Cidade;
            obj.Bairro = funcionario.Bairro;
            obj.UF = funcionario.UF;
            obj.PontoReferencia = funcionario.PontoReferencia;
            obj.Email = funcionario.Email;
            obj.Telefone = funcionario.Telefone;
            obj.Telefone2 = funcionario.Telefone2;
            obj.CPF = funcionario.CPF;
            obj.RG = funcionario.RG;
            obj.LocalTrabalho = funcionario.LocalTrabalho;
            obj.Profissao = funcionario.Profissao;
            obj.NivelInstrucao = funcionario.NivelInstrucao;

            context.SubmitChanges();
        }

        public void Delete(int Codigo) 
        {
            Funcionario funcionario = context.Funcionario.Single(f => f.Codigo == Codigo);
            context.Funcionarios.DeleteOnSubmit(funcionario);
            context.SubmitChanges();
        }

        public Funcionario getNomeFuncionario(string NomeFuncionario)
        {
            return context.Funcionarios.SingleOrDefault(e => e.Nome == NomeFuncionario);
        }

        public Funcionario getFuncionario(int codigo)
        {
            return context.Funcionarios.SingleOrDefault(e => e.Codigo == codigo);
        }
    }

}
